package com.yfp.operation.service;

import com.yfp.operation.domain.ActivitySignInsClients;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yfp.operation.domain.dto.ActivitySignInsSearchParticipationReq2DTO;
import com.yfp.operation.domain.vo.ActivitySignInsSearchParticipationReqVO;

import java.util.HashMap;
import java.util.List;

/**
 *
 * @description 针对表【activity_sign_ins_clients(打卡管理-参与用户表)】的数据库操作Service
 * @createDate 2025-01-02 10:22:14
 */
public interface ActivitySignInsClientsService extends IService<ActivitySignInsClients> {

    /**
     * 根据活动id统计打卡次数
     *
     * @param activitySignInsIds
     * @return
     */
    HashMap<Long, Long> countByActivitySignInsIds(List<Long> activitySignInsIds);

    /**
     * 根据活动id查询参与用户列表
     *
     * @param searchReqDTO
     * @return
     */
    List<ActivitySignInsSearchParticipationReqVO> searchParticipationList(ActivitySignInsSearchParticipationReq2DTO searchReqDTO);

    /**
     * 是否已加入活动
     *
     * @param clientId
     * @param activitySignInsId
     * @return true 已加入, false 未加入
     */
    Boolean joined(String clientId, Long activitySignInsId);

    /**
     * 累加活动-累计打卡
     *
     * @param clientId
     * @param activitySignInsId
     */
    void incrementCount(String clientId, Long activitySignInsId);

    /**
     * 累加活动-当前打卡
     *
     * @param clientId
     * @param activitySignInsId
     */
    Long currentCount(String clientId, Long activitySignInsId);
}
